package Invaders;

import java.awt.Dimension;
import java.util.Random;

import javax.swing.ImageIcon;

import Objects.Estado;

public class Boss extends Invader{

	private int contPasso;
	private int limitePasso;
	private int modo;
	private Estado dir;
	private int contPassoModo4;
	private int limitePassoModo4;
	
	public Boss(Dimension a) {
		super(a);
		icon = new ImageIcon(getClass().getResource("/Sprites/boss.gif")).getImage();
		Random r = new Random();
		limitePasso = r.nextInt(200) + 100; 
		contPasso = 0;
		life = 10;
		score = 100;
		modo = r.nextInt(4)+1;
		limitePassoModo4 = r.nextInt(100) + 50;
		contPassoModo4 = 0;
		dano = 2;
		dx = 2;
    	dy = 2;
    	raioColisao = 33;
    	raioColisao1 = 30;
    	raioColisao2 = 30;
	}
	
	public void move() {
				
		contPasso++;
		if(contPasso == limitePasso) {
			Random r = new Random();
			modo = r.nextInt(4)+1;
			contPasso = 0;
		}
		switch(modo) {
			case 1:
				x += dx;
				break;
			case 2:
				y += dy;
				break;
			case 3:
				x += dx;
				y += dy;
				break;
			case 4:
				contPassoModo4++;
				if(contPassoModo4 == limitePassoModo4) {
					if(dir == Estado.LEFT) {
		    			dir = Estado.RIGHT;
		    			contPassoModo4 = 0;
		    		}
		    		else {
		    			dir = Estado.LEFT;
		    			contPassoModo4 = 0;
		    		}
				}
				y+=dy;
		    	if(dir == Estado.LEFT) {
		    		x -= dx;
		    	}
		    	if(dir == Estado.RIGHT) {
		    		x += dx;
		    	}
		    	break;
		}
		if (x < 0) { 
			dx = -dx; 
			x += dx; 
		} 
		if (y < 0) { 
			dy = -dy; 
			y += dy; 
		} 
		if (x > area.width - iw) { 
			dx = -dx; 
			x += dx; 
		} 
		if (y > area.height - ih) { 
			dy = -dy; 
			y += dy; 
		}
	}
	
	public int getXm() {
  		return x + 41;
  	}
	
	public int getYm() {
  		return y + 33;
  	}
  
  	public int getXm1() {
  		return x + 42;
  	}
  
  	public int getYm1() {
  		return y + 97;
  	}
  
  	public int getXm2() {	
  		return x + 42;
  	}
  
  	public int getYm2() {
  		return y + 97;
  	}
  
  	public int getXm3() {
  		return x + 42;
  	}
  	
  	public int getYm3() {
  		return y + 97;
  	}
}
